#ifndef IDT_H_
# define IDT_H_

# include <stdio.h>

typedef struct idt s_idt;

struct idt
{
  unsigned short offset_low;
  unsigned short segment_selector;
  unsigned char flags1;
  unsigned char flags2;
  unsigned short offset_high;
} __attribute__((packed));

typedef struct idtr s_idtr;

struct idtr
{
  unsigned int lim:16;
  unsigned int idt:32;
} __attribute__((packed));

void init_idt();

extern void isr_keyboard(void);
extern void isr0(void);
extern void isr1(void);
extern void isr2(void);
extern void isr3(void);
extern void isr4(void);
extern void isr5(void);
extern void isr6(void);
extern void isr7(void);
extern void isr8(void);
extern void isr9(void);
extern void isr10(void);
extern void isr11(void);
extern void isr12(void);
extern void isr13(void);
extern void isr14(void);
extern void isr15(void);
extern void isr16(void);
extern void isr17(void);
extern void isr18(void);
extern void isr19(void);
extern void isr20(void);
extern void isr21(void);
extern void isr22(void);
extern void isr23(void);
extern void isr24(void);
extern void isr25(void);
extern void isr26(void);
extern void isr27(void);
extern void isr28(void);
extern void isr29(void);
extern void isr30(void);
extern void isr31(void);


#endif /* !IDT_H_ */
